#ifndef __MODELEDITOR_MODEL_H
#define __MODELEDITOR_MODEL_H


#define	MAX( a, b ) (( a < b ) ? (b) : (a))
#define	MIN( a, b ) (( a < b ) ? (a) : (b))  

class CModel
{
public:
	enum EModelType
	{
		EModel_MD2,
		EModel_MD3,
		EModel_MS3D,
		EModel_UnKnown,
	};


	//Load the model from file
	virtual bool Load(const char * szFileName) = 0;
	virtual void SetScaling( float fScale = 0.0f ) = 0;

	virtual UINT GetAnimationListNum() = 0;
	virtual const char* GetAnimationName(UINT AnimID) = 0;

	virtual void CreateStaticMesh(UINT skinID) = 0;

	virtual void Render(float ElapsedSeconds) = 0;

	virtual EModelType GetModelType() = 0;

	CModel() { m_ModelScale = 1.0f; }
	virtual ~CModel() { }

public:
	float m_ModelScale;
};

#endif //__MODELEDITOR_MODEL_H